package main.leetcode.offer.firstround.from03to50;

import main.datastruc.TreeNode;

/**
 * 27.二叉树的镜像
 *
 * <p>请完成一个函数，输入一个二叉树，该函数输出它的镜像。
 *
 * <p>示例 1：输入：root = [4,2,7,1,3,6,9] 输出：[4,7,2,9,6,3,1]
 *
 * <p>限制：0 <= 节点个数 <= 1000
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class ex27 {

    public static void main(String[] args) {
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(3);
        System.out.println(new ex27().mirrorTree(root));
    }

    public TreeNode mirrorTree(TreeNode root) {
        if (root == null || root.right == null && root.left == null) return root;
        TreeNode newRoot = new TreeNode(root.val);
        newRoot.left = mirrorTree(root.right);
        newRoot.right = mirrorTree(root.left);
        return newRoot;
    }
}
